Microprocessors are used in a wide range of applications. A microprocessor-based system generally comprises a processor and a non-volatile memory device which stores a set of instructions that are to be performed by the processor to provide a desired application. The non-volatile memory on which the instructions are stored can be a read only memory (ROM) which forms part of the same integrated circuit, or the same package, as the processor. Such an arrangement is often known as ‘System-on-Chip’. This arrangement has the advantages of being physically compact, and cost-effective for high-volume applications as the ROM can be created in the same manufacturing process as the processor. However, the use of a read-only memory has a disadvantage that the set of instructions are frozen and cannot be subsequently changed. It is sometimes necessary to update a set of instructions to correct defects—‘bugs’—which are discovered in the instructions after manufacture.